package com.sixth.docker.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sixth.core.entity.PatientFile;
import com.sixth.core.vo.R;
import com.sixth.docker.mapper.PatientFileMapper;
import com.sixth.docker.service.PatientFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @program: sixth-hospital-parent
 * @description:
 * @author: 赵庆龙
 * @create: 2024-08-20 20:01
 **/
@Service
public class PatientFileServiceImpl implements PatientFileService {
    @Autowired
    private PatientFileMapper patientFileMapper;
    @Override
    public R<PatientFile> insertOrUpdate(String patientId) {
        QueryWrapper<PatientFile> wrapper = new QueryWrapper<>();
        wrapper.eq("patient_id", patientId);

        // 根据 patientId 查询记录是否存在
        PatientFile existingPatientFile = patientFileMapper.selectOne(wrapper);

        if (existingPatientFile != null) {
            // 如果记录已存在，不做任何修改，直接返回现有记录
            return R.ok(existingPatientFile);
        } else {
            // 如果记录不存在，插入新数据
            PatientFile patientFile = new PatientFile();
            patientFile.setPatientId(patientId);

            // 插入新记录，其他字段保持为空或默认
            patientFileMapper.insert(patientFile);

            return R.ok(patientFile);
        }
    }

    @Override
    public R<PatientFile> selectById(String patientId) {
        QueryWrapper<PatientFile> wrapper = new QueryWrapper<>();
        wrapper.eq("patient_id",patientId);
        PatientFile patientFile = patientFileMapper.selectOne(wrapper);
        return R.ok(patientFile);
    }

    @Override
    public R<PatientFile> updateById(PatientFile patientFile) {
        QueryWrapper<PatientFile> wrapper = new QueryWrapper<>();
        wrapper.eq("patient_id",patientFile.getPatientId());
        if(patientFileMapper.update(patientFile,wrapper)>0){
            return R.ok(patientFile);
        }

        return null;
    }

    @Override
    public R<PatientFile> insert(PatientFile patientFile) {
        patientFileMapper.insert(patientFile);
        return R.ok(patientFile);
    }

    @Override
    public R<PatientFile> deleteById(String patientId) {
        if(patientFileMapper.deleteById(patientId)>0){
            return R.ok();
        }
        return null;
    }
}